using B.S.NewMedical.Api.Read.DTOS.Doctor;
using B.S.NewMedical.ErrorCode;
using MediatR;
using System.Collections.Generic;

namespace B.S.NewMedical.Api.Read.Application.Command.Doctor
{
    /// <summary>
    /// 获取开单申请表列表命令
    /// </summary>
    public class GetPrescriptionApplicationsCommand : IRequest<ApiResult<List<PrescriptionApplicationDto>>>
    {
        /// <summary>
        /// 用户ID，为null时不限制用户
        /// </summary>
        public int? UserId { get; set; }

        /// <summary>
        /// 状态，为null时查询所有状态
        /// </summary>
        public int? Status { get; set; }

        /// <summary>
        /// 当前页码，默认为1
        /// </summary>
        public int PageIndex { get; set; } = 1;

        /// <summary>
        /// 每页大小，默认为10
        /// </summary>
        public int PageSize { get; set; } = 10;

        /// <summary>
        /// 是否加载明细，默认不加载
        /// </summary>
        public bool IncludeDetails { get; set; } = false;

        public GetPrescriptionApplicationsCommand()
        {
        }

        public GetPrescriptionApplicationsCommand(int? userId, int? status, int pageIndex = 1, int pageSize = 10, bool includeDetails = false)
        {
            UserId = userId;
            Status = status;
            PageIndex = pageIndex;
            PageSize = pageSize;
            IncludeDetails = includeDetails;
        }
    }
} 